1. Technical Field
The present disclosure relates generally to the field of data processing involving software installation and management, and in particular relates to software application distribution systems and methods of updating and versioning software applications available in an application distribution system.
2. Introduction
Online commerce is quickly becoming a ubiquitous part of the modern economy. Additionally, consumers have grown accustomed to media and software applications that are intelligently designed, easily accessible, and hassle-free to use. Likewise, consumers have come to expect that the online marketplace will be streamlined and user-friendly as well.
An example of an online marketplace is a network-based application distribution system. Such a market offers software applications from software developers as both free and paid downloads. Downloaded applications also can be updated by software developers from time to time to fix bugs, update settings, add additional content and features, etc. However, many known application updating schemes are inefficient and oftentimes require that a large amount of data be sent over cellular networks or require a large amount of client device processing resources. The existing prior art methodologies can result in decreased cellular efficiency and a large cost to consumers in the form of decreased device performance, reduction of bandwidth available for other purposes, or reduced battery life.
Furthermore, it is inefficient, in updating an application, to upload to a client computing device an updated application file directory that contains each and every file, including identical, non-updated files, as the previous version of the application file directory already installed and stored on that device. Likewise, once an application update is downloaded, patching a file directory on-the-fly without a backup is risky because if a problem occurs, the user is left with a corrupted and non-functioning application. However, it is inefficient to create an entirely identical copy of an application directory simply to use as a backup in the event of a fatal update error.
Moreover, if users become accustomed to overly large downloads or long update processes, they may begin to ignore notices of important new updates, versions, or patches to applications installed on their devices. Ignoring such updates can lead to decreased device performance and possible vulnerability to malicious attacks, as well as additional maintenance requirements for system operators. For example, a quick application update with a patch to fix a minor problem can prevent the old software from crashing a device. Consequently, outdated applications on client devices having software bugs can impart very large maintenance costs to an application distribution system that supports those applications and their updates. Therefore, it is in the best interest of the administrators of the application distribution system that users of the applications update them without hesitation as soon as updates become available. Likewise, while keeping the general preference for users to update application when updates become available, it is in the best interest of the application distribution system to keep users' cellular carrier costs low so as not to discourage their use of the system. The disclosed technology of the present disclosure addresses the deficiencies known in the present state of the art and provides a novel solution and improvement thereover.